using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("ShownUIMgr")]
	public class ShownUIMgr : MonoBehaviour
	{
		public enum UI_WINDOW
		{
			NONE,
			GENERAL_STORE,
			ARENA_STORE,
			TAVERN_BRAWL_STORE,
			QUEST_LOG
		}

		public UI_WINDOW m_shownUI => method_2<UI_WINDOW>("m_shownUI");

		public ShownUIMgr(IntPtr address, string className)
			: base(address, className)
		{
		}

		public ShownUIMgr(IntPtr address)
			: this(address, "ShownUIMgr")
		{
		}

		public static ShownUIMgr Get()
		{
			return MonoClass.smethod_15<ShownUIMgr>(TritonHs.MainAssemblyPath, "", "ShownUIMgr", "Get", Array.Empty<object>());
		}

		public void Awake()
		{
			method_8("Awake");
		}

		public void OnDestroy()
		{
			method_8("OnDestroy");
		}

		public void SetShownUI(UI_WINDOW uiWindow)
		{
			method_8("SetShownUI", uiWindow);
		}

		public UI_WINDOW GetShownUI()
		{
			return method_11<UI_WINDOW>("GetShownUI", Array.Empty<object>());
		}

		public bool HasShownUI()
		{
			return method_11<bool>("HasShownUI", Array.Empty<object>());
		}

		public void ClearShownUI()
		{
			method_8("ClearShownUI");
		}
	}
}
